package com.guodi.map.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.guodi.map.entity.MapCoordinate;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * 图层的传输对象
 * @author xukl
 * @date 2022年5月17日
 * @since 1.0
 */
@Data
public class MapLayerDTO {

    @ApiModelProperty(value = "ID")
    private String id;

    @ApiModelProperty(value = "图层名称")
    private String name;

    @ApiModelProperty(value = "图层类型（1.矢量 2.栅格 3. REST  4.WMS  5.WFS  6.底图）")
    private String layerType;

    @ApiModelProperty(value = "要素类型（1:点，2：线，3：面，4：栅格(2维)，5：栅格(2.5维)，6：影像）")
    private String featureType;

    @ApiModelProperty(value = "图层URL地址")
    private String layerUrl;

    @ApiModelProperty(value = "图层表名")
    private String layerTable;

    @ApiModelProperty(value = "服务名称")
    private String serverName;

    @ApiModelProperty(value = "服务地址")
    private String serverUrl;

    @ApiModelProperty(value = "加载方式（1.动态加载，2瓦片加载）")
    private String loadType;

    @ApiModelProperty(value = "坐标系")
    private String spatialReference;

    @ApiModelProperty(value = "四至坐标")
    private String initialExtent;

    @ApiModelProperty(value = "图层排序")
    private Integer sort;

    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "数据集ID")
    private String orgId;

    @ApiModelProperty(value = "创建人")
    private String creator;

    @ApiModelProperty(value = "创建时间")
    private Date createTime;

    @ApiModelProperty(value = "修改人")
    private String modifier;

    @ApiModelProperty(value = "修改时间")
    private Date modifyTime;

    @ApiModelProperty(value = "格式化后的创建时间",hidden = true)
    @TableField(exist = false)
    private String date;

    /**
     * @描述: 新增表字段
     * @作者: 代鹏刚
     * @日期: 2019/12/31 16:15
     **/
    @ApiModelProperty(value = "上级ID")
    private String parentId;
    @ApiModelProperty(value = "1：目录 2：服务 3：图层")
    private String type;
    @ApiModelProperty(value = "发布软件类型")
    private String releaseType;
    @ApiModelProperty(value = "图层来源")
    private String layerSource;
    @ApiModelProperty(value = "授权key")
    private String authKey;
    @ApiModelProperty(value = "数据来源")
    private String dataSource;
    @ApiModelProperty(value = "更新时间")
    private String updateTime;
    @ApiModelProperty(value = "底图类型")
    private String baseMapType;

    @ApiModelProperty(value = "经度（三维-中心点）")
    private String longitude;
    @ApiModelProperty(value = "纬度（三维-中心点）")
    private String latitude;
    @ApiModelProperty(value = "高度（三维-中心点）")
    private String height;
    @ApiModelProperty(value = "方位角（三维-中心点）")
    private String azimuthAngle;
    @ApiModelProperty(value = "俯视角（三维-中心点）")
    private String depressionAngle;
    @ApiModelProperty(value = "高程模式（三维-高程）")
    private String elevationPattern;
    @ApiModelProperty(value = "高程字段（三维-高程）")
    private String elevationField;
    @ApiModelProperty(value = "偏移（三维-高程）")
    private String deviation;
    @ApiModelProperty(value = "单位（三维-高程）")
    private String unit;
    @ApiModelProperty(value = "延迟加载(1:是，0:否)")
    private Integer lazyLoad;
    @ApiModelProperty(value = "延迟时间(ms)")
    private Integer lazyTime;
    @ApiModelProperty(value = "自定义参数")
    private String customParameter;
    @ApiModelProperty(value = "过滤器")
    private String filter;
    @ApiModelProperty(value = "原点")
    private String origin;

    /**
     * @描述: 非表字段
     * @作者: 代鹏刚
     * @日期: 2019/12/31 16:18
     **/
    @ApiModelProperty(value = "子节点")
    @TableField(exist = false)
    private List<MapLayerDTO> children;
    @ApiModelProperty(value = "坐标系统")
    @TableField(exist = false)
    private MapCoordinate mapCoordinate;
    @ApiModelProperty(value = "说明")
    @TableField(exist = false)
    private String explain;
    @ApiModelProperty(value = "父节点名称")
    @TableField(exist = false)
    private String parentName;
    @ApiModelProperty(value = "节点等级")
    @TableField(exist = false)
    private Integer treeLevel;

    @TableField(exist = false)
    @ApiModelProperty(value = "图标类型,目录:icon_layer_dir,服务:icon_service,图层;icon_layer")
    private String iconSkin;

    @ApiModelProperty(value = "服务别名")
    private String alias;

    @TableField(exist = false)
    private String mid;

    @ApiModelProperty("全图范围")
    private String fullExtent;

    @ApiModelProperty("切片方案")
    private String lods;

    @ApiModelProperty("瓦片矩阵集")
    private String tileMatrixSet;

    @ApiModelProperty("图层名")
    @TableField(exist = false)
    private String layerName;
}
